package com.studyhub.question.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.studyhub.question.model.entity.QueQuestionEntity;
import com.studyhub.question.model.vo.QuestionVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 问题数据访问层
 */
@Mapper
public interface QuestionMapper extends BaseMapper<QueQuestionEntity> {

    /**
     * 分页查询问题列表（包含用户信息）
     */
    List<QuestionVO> selectQuestionList(@Param("questionType") String questionType, 
                                       @Param("keyword") String keyword,
                                       @Param("offset") Integer offset, 
                                       @Param("limit") Integer limit);
    
    /**
     * 查询问题总数
     */
    Integer selectQuestionCount(@Param("questionType") String questionType, 
                               @Param("keyword") String keyword);

    /**
     * 查询问题详情（包含用户信息）
     */
    QuestionVO selectQuestionDetail(@Param("questionId") Long questionId);

    /**
     * 更新点赞数
     */
    @org.apache.ibatis.annotations.Update("UPDATE que_question SET like_count = like_count + #{increment} WHERE question_id = #{questionId}")
    void updateLikeCount(@Param("questionId") Long questionId, @Param("increment") Integer increment);

    /**
     * 更新热度值
     */
    @org.apache.ibatis.annotations.Update("UPDATE que_question SET hot_degree = hot_degree + #{increment} WHERE question_id = #{questionId}")
    void updateHotDegree(@Param("questionId") Long questionId, @Param("increment") Integer increment);
}
